<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of produtos_marcas_model
 *
 * @author souzadavi
 */
class Produtos_relatorios_model extends CI_Model {

    //put your code here

    public function __construct() {
        parent::__construct();
        $this->load->config('parametros');
    }

    public function relatorioListaImpressao() {

        //select pg.codigo_referencia, pd.titulo, poi.nome, poai.nome, pe.quantidade, pl.nome, pe.valor_venda
        $this->db->select('pg.codigo_referencia, pd.titulo, poi.nome as rotulo, poai.nome as valor, pe.quantidade, pl.nome as empresa, pe.valor_venda', false);

        //-detalhes
        //left join cliente_db.ec_produtos_detalhes as pd on pg.id = pd.produtos_id_prod
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosDetalhes') . ' as pd', 'pg.id = pd.produtos_id_prod', 'left');

        //-atributos
        //left join cliente_db.ec_produtos_opcional_valor as pov on pov.ec_produtos_id = pg.id
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalValor') . ' as pov', 'pov.ec_produtos_id = pg.id', 'left');

        //-rotulo atributo
        //left join cliente_db.ec_produtos_opcional as po on po.id = pov.ec_produtos_opcional_id
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcional') . ' as po', 'po.id = pov.ec_produtos_opcional_id', 'left');

        //left join cliente_db.ec_produtos_opcional_info as poi on po.id = poi.opcional_id
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalInfo') . ' as poi', 'po.id = poi.opcional_id', 'left');
        //-
        //
        //--valor atributo
        //left join cliente_db.ec_produtos_opcional_atributo as poa on poa.id = pov.ec_produtos_opcional_atributo_id
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalAtributo') . ' as poa', 'poa.id = pov.ec_produtos_opcional_atributo_id', 'left');

        //left join cliente_db.ec_produtos_opcional_atributo_info as poai on poai.atributo_id = poa.id
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosOpcionalAtributoInfo') . ' as poai', 'poai.atributo_id = poa.id', 'left');
        //--
        //
        //-Estoque
        //left join cliente_db.ec_produtos_estoque as pe on pe.id_prod = pg.id
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosEstoque') . ' as pe', 'pe.id_prod = pg.id', 'left');

        //-Loja
        //left join cliente_db.ec_produtos_loja as pl on pl.id = pe.produtos_loja_id
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosLoja') . ' as pl', 'pl.id = pe.produtos_loja_id', 'left');

        //-Idioma
        //left join cliente_db.local_idiomas as li on li.codigo = 
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblLocalIdiomas') . ' as li', 'li.id = pd.idiomas_id and li.id = poi.idiomas_id and li.id = poai.idiomas_id' );
                
        $this->db->where('li.codigo' , $this->config->item('language'));
                       
        //from cliente_db.ec_produtos as pg
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutos') . ' as pg');
        
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return null;
        }
    }

    //        $this->db->join($this->config->item('dbCliente') .$this->config->item('') .'as ', '', 'left');


    public function consultar($_produto, $_loja) {
        $this->db->where('id_prod', $_produto);
        $this->db->where('produtos_loja_id', $_loja);
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutosEstoque'));
        //pre($this->db->last_query());
        if ($query->num_rows() > 0) {
            return $query->row();
        } else {
            return null;
        }
    }

    public function consultar_total($_idioma) {
        $this->db->select('pe.id, pe.id_prod, pd.titulo, pe.quantidade, pe.valor_venda, pe.margem_desconto, pe.status, pl.nome', false);
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosEstoque') . ' as pe', 'p.id = pe.id_prod', 'LEFT OUTER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosLoja') . ' as pl', 'pl.id = pe.produtos_loja_id', 'LEFT OUTER');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblProdutosDetalhes') . ' as pd', 'p.id = pd.produtos_id_prod and pd.idiomas_id = ' . $_idioma, 'LEFT OUTER');
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblProdutos') . ' as p');
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }

    public function cadastrar($_dados = array()) {
        $this->db->set($_dados);
        $this->db->insert($this->config->item('dbCliente') . $this->config->item('tblProdutosEstoque'));
        if ($this->db->affected_rows() > 0) {
            return $this->db->insert_id();
        } else {
            return NULL;
        }
    }

    public function atualizar_estoque($_prod, $_loja, $_quantidade) {
        //$this->db->query('update ec_produtos_estoque set quantidade = quantidade - '.$_quantidade.' where id_prod =  '.$_prod.' and produtos_loja_id =  ' . $_loja);
        $this->db->where('id_prod', $_prod);
        $this->db->where('produtos_loja_id', $_loja);
        $this->db->set('quantidade', 'quantidade - ' . $_quantidade, false);
        $this->db->update($this->config->item('dbCliente') . $this->config->item('tblProdutosEstoque'));

        //pre($this->db->last_query());

        if ($this->db->affected_rows() > 0) {
            return $_prod;
        } else {
            return NULL;
        }
    }

    public function alterar($_id, $_dados = array()) {
        $this->db->where('id', $_id);
        $this->db->set($_dados);
        $this->db->update($this->config->item('dbCliente') . $this->config->item('tblProdutosEstoque'));
        if ($this->db->affected_rows() > 0) {
            return $_id;
        } else {
            return NULL;
        }
    }

    public function excluir($_id) {
        $this->db->where('id', $_id);
        $this->db->delete($this->config->item('dbCliente') . $this->config->item('tblProdutosEstoque'));
        if ($this->db->affected_rows() > 0) {
            return TRUE;
        } else {
            return NULL;
        }
    }

}